package org.codeart.template.example2;

/**
 * 账户抽象类
 */
public abstract class Account {

    /**
     * step1 验证用户信息是否正确
     */
    public boolean validate(String account, String password) {
        System.out.printf("账号: %s, 密码: %s\n", account, password);
        return account.equalsIgnoreCase("tom") && password.equalsIgnoreCase("123456");
    }

    /**
     * step2
     */
    public abstract void calculate();


    /**
     * step3 显示利息
     */
    public void display() {
        System.out.println("显示利息!");
    }

    /**
     * 模板方法
     */
    public void handle(String account, String password) {
        if (!validate(account, password)) {
            System.out.println("账户或密码错误!");
            return;
        }
        calculate();
        display();
    }
    
}
